"""
装饰器的用法
"""


# 装饰器的一般写法（闭包）
def outer(func):
    def inner():
        print("我要睡觉了")
        sleep()
        print("我起床了")

    return inner


def sleep():
    import random
    import time
    print("睡眠中...")
    # 随机获取1~5 数字作为睡眠的时间
    time.sleep(random.randint(1, 5))


# 调用
fn = outer(sleep)
fn()


# 装饰器的快捷写法（语法糖）
@outer
def sleep2():
    import random
    import time
    print("睡眠中...")
    time.sleep(random.randint(1, 5))


# 直接调用sleep2方法
sleep2()
